package com.datastructures2.链表;

import com.sun.javafx.scene.layout.region.SliceSequenceConverter;

/**
 * @author MaoLin Wang
 * @date 2020/10/6 4:14 下午
 */
public class 两数相加 {
    public static ListNode addSum(ListNode l1,ListNode l2){
        ListNode dummy=new ListNode(-1);
        ListNode node1=l1,node2=l2,temp=dummy;

        int carry=0;
        while (node1 !=null || node2!=null){
            int lval=node1==null? 0 : node1.val;
            int rval=node2==null ? 0 : node2.val;

            int sum=lval+rval+carry;
            carry=sum/10;
            temp.next=new ListNode(sum%10);
            temp=temp.next;

            if (node1!=null ){
                node1=node1.next;
            }
            if (node2!=null){
                node2=node2.next;
            }
        }
        if (carry>0){
            temp.next=new ListNode(carry);
        }
        return dummy.next;
    }

    public static void main(String[] args) {
        ListNode head1=new ListNode(2);
        ListNode node=new ListNode(4);
        ListNode node2=new ListNode(9);

        ListNode head2=new ListNode(5);
        ListNode node3=new ListNode(6);
        ListNode node4=new ListNode(4);

        node.next=node2;
        head1.next=node;

        node3.next=node4;
        head2.next=node3;

        ListNode listNode = addSum(head1, head2);
        ListNode temp=listNode;
        while (temp!=null){
            System.out.println(temp.val);
            temp=temp.next;
        }

    }
}
